Securing sensitive data in electronic, optical or other machine-readable form has been an ongoing problem for almost as long as computers have existed. Many types of data may be considered sensitive and therefore warrant security measures, such as social security numbers, credit card numbers, birth dates, etc. Consequently, various forms of encryption have been used in computer systems to protect sensitive data. As hackers and other wrongdoers become increasingly more sophisticated in their techniques for accessing sensitive data without authorization, the approaches to protecting such data must evolve to meet that threat.
In the last few years, awareness of the need to better secure data at rest has increased. “Data at rest” is defined as data that is stored in a persistent data storage facility, as opposed to data that is traversing a network or temporarily residing in computer memory to be read or updated. Data at rest can include archival files or reference files that are rarely if ever changed. Data at rest can also include data that is subject to regular, but not constant, change. Data at rest can include, for example vital corporate data stored on the hard drive of an employee's notebook computer, data on an external backup medium, data maintained in storage of a storage server on a storage area network (SAN) or in a network attached storage (NAS) environment, or data on a server of an offsite backup service provider.
One approach that has been developed for protecting data at rest in a network storage environment is to deploy a separate, dedicated security appliance between a network storage server and its clients. Data that is being sent from a client to the storage server to be written is intercepted and encrypted by the security appliance and then sent to the storage server, which stores the data in encrypted form. When a client requests to read the data, the security appliance authenticates the client, confirms that the client has access to the requested data, optionally logs the request, and then forwards the request to the storage server. The storage server retrieves the encrypted data from storage and sends it to the security appliance, which decrypts the data and sends the decrypted data to the client. One problem with this approach is that in many instances it is desirable for a storage server to perform various other operations on data, such as indexing, compression and deduplication. However, it is mathematically unfeasible if not impossible to implement these functions on encrypted data. Also, the addition of a security appliance increases cost, complexity and can negatively impact performance of the system.
Further, with the use of a separate security appliance there is a concern that some clients might not go through the security appliance, that is, they might have a different path to the data. The level of coordination required between all the parties to ensure that all paths to the data are encrypted is high. Additionally, the use of a separate security appliance complicates or prevents the use of caching devices in front of the storage server, because the security appliance tends to become a communications bottleneck.